//PigLatinTranslator.java
//Represent a translator from English to pig Latin. Demonstrates method decomposition.
import java.util.Scanner;
public class PigLatinTranslator
{
  //Translates a sentence of words into Pig Latin.
  public static String translate(String sentence)
  {
  String result = "";

  sentence = sentence.toLowerCase();

  Scanner scan = new Scanner(sentence);

  while(scan.hasNext())
  {
    result += translateWord(scan.next());
    result += "";
  }

  return result;
}
//Translates one word into pig latin.If the word brgins with a vowel,
//the suffix "yay" is appended to the word .Otherwise,the fist letter
//or two are moved to the end of the word, and "ay"is appended.
private static String translateWord(String word)
{
  String result = "";

  if (beginsWithVowel (word))
    result = word + "yay";
  else
    if (beginsWithBlend (word))
      result = word.substring(2) + word.substring(0,2) + "ay";
    else
      result = word.substring(1) + word.charAt(0) + "ay";

  return result;
}
//Demonstrates if the specfied word begins with a vowel.
private static boolean beginsWithVowel(String word)
{
  String vowels = "aeiou";

  char letter =word.charAt(0);

  return (vowels.indexOf(letter)!=-1);
}
//Demonstrates if the specified word begins with a particular two-character consonant blend.
private static boolean beginsWithBlend(String word)
{
  return (word.startsWith("bl") || word.startsWith("sc") ||
          word.startsWith("br") || word.startsWith("sh") ||
          word.startsWith("ch") || word.startsWith("sk") ||
          word.startsWith("cl") || word.startsWith("sl") ||
          word.startsWith("cr") || word.startsWith("sn") ||
          word.startsWith("dr") || word.startsWith("sm") ||
          word.startsWith("dw") || word.startsWith("sp") ||
          word.startsWith("fl") || word.startsWith("sq") ||
          word.startsWith("fr") || word.startsWith("st") ||
          word.startsWith("gl") || word.startsWith("sw") ||
          word.startsWith("gr") || word.startsWith("th") ||
          word.startsWith("kl") || word.startsWith("tr") ||
          word.startsWith("ph") || word.startsWith("tw") ||
          word.startsWith("pl") || word.startsWith("wh") ||
          word.startsWith("pr") || word.startsWith("wr") );
  }
}  
